home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / microreader / MicroReader.jar / b.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-06-10  |  5.2 KB  |  226 lines

  1. import com.siemens.mp.io.File;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import javax.microedition.io.Connector;
  5. import javax.microedition.io.HttpConnection;
  6. import javax.microedition.lcdui.Command;
  7. import javax.microedition.lcdui.CommandListener;
  8. import javax.microedition.lcdui.Displayable;
  9. import javax.microedition.lcdui.Form;
  10. import javax.microedition.lcdui.Gauge;
  11. import javax.microedition.lcdui.Screen;
  12. import javax.microedition.lcdui.StringItem;
  13.  
  14. // $FF: renamed from: b
  15. class class_0 extends Form implements Runnable, CommandListener {
  16.    // $FF: renamed from: long javax.microedition.lcdui.Gauge
  17.    Gauge field_0 = null;
  18.    // $FF: renamed from: int javax.microedition.lcdui.StringItem
  19.    StringItem field_1;
  20.    // $FF: renamed from: try javax.microedition.lcdui.StringItem
  21.    StringItem field_2;
  22.    // $FF: renamed from: char com.siemens.mp.io.File
  23.    File field_3;
  24.    // $FF: renamed from: if java.lang.String
  25.    String field_4;
  26.    // $FF: renamed from: new java.lang.String
  27.    String field_5;
  28.    // $FF: renamed from: goto java.lang.String
  29.    String field_6;
  30.    // $FF: renamed from: for int
  31.    int field_7 = -1;
  32.    // $FF: renamed from: else long
  33.    long field_8;
  34.    // $FF: renamed from: do long
  35.    long field_9;
  36.    // $FF: renamed from: case long
  37.    long field_10;
  38.    // $FF: renamed from: byte long
  39.    long field_11;
  40.    // $FF: renamed from: a boolean
  41.    boolean field_12;
  42.  
  43.    public class_0(String var1) {
  44.       super("");
  45.       this.field_4 = var1;
  46.       int var2 = this.field_4.length();
  47.       int var3 = this.field_4.lastIndexOf(47);
  48.       if (var3 == var2 - 1) {
  49.          var2 = var3;
  50.          var3 = this.field_4.lastIndexOf(47, var3 - 1);
  51.       }
  52.  
  53.       this.field_5 = this.field_4.substring(var3 + 1, var2);
  54.       this.field_6 = null;
  55.       this.field_3 = new File();
  56.       this.field_12 = false;
  57.       this.field_11 = 0L;
  58.  
  59.       try {
  60.          this.field_7 = this.field_3.open(this.field_5);
  61.          this.field_8 = (long)this.field_3.length(this.field_7);
  62.       } catch (Exception var5) {
  63.          this.field_12 = true;
  64.       }
  65.  
  66.       ((Screen)this).setTitle("Downloading...");
  67.       this.field_1 = new StringItem(this.field_5, "   Connecting...");
  68.       this.field_2 = new StringItem("", " ");
  69.       this.field_0 = new Gauge("", false, 30, 0);
  70.       ((Form)this).append(this.field_1);
  71.       ((Form)this).append(this.field_0);
  72.       ((Form)this).append(this.field_2);
  73.       ((Displayable)this).addCommand(new Command("Cancel", 3, 1));
  74.       ((Displayable)this).setCommandListener(this);
  75.       this.field_10 = System.currentTimeMillis();
  76.       (new Thread(this)).start();
  77.    }
  78.  
  79.    public void commandAction(Command var1, Displayable var2) {
  80.       this.field_12 = true;
  81.    }
  82.  
  83.    // $FF: renamed from: a (int) void
  84.    void method_0(int var1) {
  85.       long var2 = System.currentTimeMillis();
  86.       if (var2 - this.field_10 >= 1000L) {
  87.          this.field_10 = var2;
  88.          long var4 = 900L;
  89.          long var8 = var2 - this.field_9;
  90.          long var6 = this.field_8 - (long)var1;
  91.          if (var8 > 4000L && var1 > 4000) {
  92.             var4 = (long)var1 / (var8 / 1000L);
  93.             if (var4 < 100L) {
  94.                var4 = 100L;
  95.             }
  96.          }
  97.  
  98.          long var10 = var6 / var4;
  99.          long var12 = var10 / 60L;
  100.          var10 %= 60L;
  101.          String var14;
  102.          if (var10 < 10L) {
  103.             var14 = " Remaining: " + var12 + ":0" + var10;
  104.          } else {
  105.             var14 = " Remaining: " + var12 + ":" + var10;
  106.          }
  107.  
  108.          this.field_1.setText(var14);
  109.          this.field_0.setValue(var1);
  110.          this.field_2.setText("      " + var1 / 1024 + "/" + this.field_8 / 1024L + " k");
  111.       }
  112.    }
  113.  
  114.    public void run() {
  115.       Book var1 = Book.try();
  116.       if (!this.field_12) {
  117.          while(!var1.aP) {
  118.             Thread.currentThread();
  119.             Thread.yield();
  120.          }
  121.  
  122.          this.method_1(this.field_4);
  123.       }
  124.  
  125.       var1.a(this, this.field_5, this.field_12, this.field_6);
  126.    }
  127.  
  128.    // $FF: renamed from: a (java.lang.String) long
  129.    private long method_1(String var1) {
  130.       HttpConnection var2 = null;
  131.       InputStream var3 = null;
  132.       byte[] var4 = new byte[512];
  133.       long var5 = 0L;
  134.       boolean var7 = false;
  135.  
  136.       try {
  137.          var2 = (HttpConnection)Connector.open(var1);
  138.          if (var2 == null) {
  139.             this.field_6 = "Connection failed";
  140.          } else {
  141.             var3 = var2.openInputStream();
  142.             if (var3 == null) {
  143.                this.field_6 = "No inputstream";
  144.             } else {
  145.                int var8 = var2.getResponseCode();
  146.                if (var8 != 200) {
  147.                   if (var8 == 404) {
  148.                      this.field_6 = "Not found (404)";
  149.                   } else {
  150.                      this.field_6 = "Http error " + var8;
  151.                   }
  152.                } else {
  153.                   var5 = var2.getLength();
  154.                   this.field_8 = var5;
  155.                   int var9 = File.spaceAvailable();
  156.                   if (var5 > (long)var9) {
  157.                      this.field_6 = "Need " + var5 / 1024L + "k free";
  158.                      ((Screen)this).setTitle(this.field_6);
  159.                      this.field_8 = (long)(var9 - 4096);
  160.                      this.field_8 = Math.max(1024L, this.field_8);
  161.                      var5 = this.field_8;
  162.                   }
  163.  
  164.                   if (this.field_8 > (long)var9) {
  165.                      this.field_6 = "MMC is full!";
  166.                   } else {
  167.                      this.field_9 = System.currentTimeMillis();
  168.                      this.field_0.setMaxValue((int)this.field_8);
  169.  
  170.                      for(; this.field_11 < var5; this.method_0((int)this.field_11)) {
  171.                         if (this.field_12) {
  172.                            this.field_6 = "Download cancelled";
  173.                            break;
  174.                         }
  175.  
  176.                         int var10 = (int)(var5 - this.field_11);
  177.                         if (var10 > var4.length) {
  178.                            var10 = var4.length;
  179.                         }
  180.  
  181.                         var10 = var3.read(var4, 0, var10);
  182.                         if (var10 > 0) {
  183.                            this.field_11 += (long)var10;
  184.                            this.field_3.write(this.field_7, var4, 0, var10);
  185.                            if (!var7) {
  186.                               Book.try().f(this.field_5);
  187.                               var7 = true;
  188.                            }
  189.                         }
  190.                      }
  191.                   }
  192.                }
  193.             }
  194.          }
  195.       } catch (IOException var12) {
  196.          this.field_6 = "IO Error";
  197.       } catch (IllegalArgumentException var13) {
  198.          this.field_6 = "Cannot open";
  199.       } catch (Exception var14) {
  200.          this.field_6 = "Unknown error";
  201.       }
  202.  
  203.       try {
  204.          int var16 = this.field_3.length(this.field_7);
  205.          if (var16 != 0 && this.field_6 == null) {
  206.             if ((long)var16 < this.field_8) {
  207.                byte[] var17 = "\r\n<<aborted>>\r\n".getBytes();
  208.                this.field_3.write(this.field_7, var17, 0, var17.length);
  209.                this.field_3.close(this.field_7);
  210.             } else {
  211.                this.field_3.close(this.field_7);
  212.             }
  213.          } else {
  214.             this.field_3.close(this.field_7);
  215.             File.delete(this.field_5);
  216.          }
  217.  
  218.          var2.close();
  219.          var3.close();
  220.       } catch (Exception var11) {
  221.       }
  222.  
  223.       return this.field_11;
  224.    }
  225. }
  226.